/**
* Copyright (c) 2009
* Philipp Giese, Sven Wagner-Boysen
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package de.hpi.bpmn2_0.model.choreography;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import de.hpi.bpmn2_0.model.BaseElement;
import de.hpi.bpmn2_0.model.Collaboration;
import de.hpi.bpmn2_0.model.FlowElement;
import de.hpi.bpmn2_0.model.activity.AdHocSubProcess;
import de.hpi.bpmn2_0.model.activity.CallActivity;
import de.hpi.bpmn2_0.model.activity.Transaction;
import de.hpi.bpmn2_0.model.activity.type.BusinessRuleTask;
import de.hpi.bpmn2_0.model.activity.type.ManualTask;
import de.hpi.bpmn2_0.model.activity.type.ReceiveTask;
import de.hpi.bpmn2_0.model.activity.type.ScriptTask;
import de.hpi.bpmn2_0.model.activity.type.SendTask;
import de.hpi.bpmn2_0.model.activity.type.ServiceTask;
import de.hpi.bpmn2_0.model.activity.type.UserTask;
import de.hpi.bpmn2_0.model.activity.type.SensingTask;
import de.hpi.bpmn2_0.model.callable.GlobalChoreographyTask;
import de.hpi.bpmn2_0.model.connector.SequenceFlow;
/**
* <p>Java class for tChoreography complex type.
*
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({
GlobalChoreographyTask.class
})
@XmlType(name = "tChoreography", propOrder = {
"flowElement"
})
public class Choreography
extends Collaboration
{
/* Constructors */
/**
* Default constructor
*/
public Choreography() {
super();
}
public Choreography(Collaboration collaboration) {
}
@XmlElementRefs({
/* Activities */
@XmlElementRef(type = ChoreographyTask.class),
@XmlElementRef(type = SubChoreography.class),
/* Edges */
@XmlElementRef(type = SequenceFlow.class)
})
protected List<FlowElement> flowElement;
public List<BaseElement> getChilds() {
List<BaseElement> childs = super.getChilds();
childs.addAll(this.getFlowElement());
return childs;
}
/* Getter & Setter */
/**
* Gets the value of the flowElement property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the flowElement property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getFlowElement().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link ManualTask }{@code >}
* {@link JAXBElement }{@code <}{@link TCallChoreographyActivity }{@code >}
* {@link JAXBElement }{@code <}{@link Transaction }{@code >}
* {@link JAXBElement }{@code <}{@link TEndEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TIntermediateCatchEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TFlowElement }{@code >}
* {@link JAXBElement }{@code <}{@link CallActivity }{@code >}
* {@link JAXBElement }{@code <}{@link TComplexGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TBoundaryEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TStartEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TExclusiveGateway }{@code >}
* {@link JAXBElement }{@code <}{@link BusinessRuleTask }{@code >}
* {@link JAXBElement }{@code <}{@link ScriptTask }{@code >}
* {@link JAXBElement }{@code <}{@link TInclusiveGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TDataObject }{@code >}
* {@link JAXBElement }{@code <}{@link TEvent }{@code >}
* {@link JAXBElement }{@code <}{@link ServiceTask }{@code >}
* {@link JAXBElement }{@code <}{@link ChoreographyTask }{@code >}
* {@link JAXBElement }{@code <}{@link TDataStore }{@code >}
* {@link JAXBElement }{@code <}{@link TSubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link TIntermediateThrowEvent }{@code >}
* {@link JAXBElement }{@code <}{@link UserTask }{@code >}
* {@link JAXBElement }{@code <}{@link TSequenceFlow }{@code >}
* {@link JAXBElement }{@code <}{@link TEventBasedGateway }{@code >}
* {@link JAXBElement }{@code <}{@link AdHocSubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link SendTask }{@code >}
* {@link JAXBElement }{@code <}{@link ChoreographySubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link ReceiveTask }{@code >}
* {@link JAXBElement }{@code <}{@link TImplicitThrowEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TParallelGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TTask }{@code >}
* {@link JAXBElement }{@code <}{@link SensingTask }{@code >}
*
*
*/
public List<FlowElement> getFlowElement() {
if (flowElement == null) {
flowElement = new ArrayList<FlowElement>();
}
return this.flowElement;
}
}